<!doctype html>
<html lang="ru" data-bs-theme="dark">

<head>
    <!-- 2024-05-10 23:46:01 -->
        <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>git http-backend</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap.min.css" integrity="sha512-jnSuA4Ss2PkkikSOLtYs8BlYIeeIK1h99ty4YfvRPAlzr377vr3CXDb7sb7eEEBYjDtcYj+AjBH3FLv5uSJuXg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.11.3/font/bootstrap-icons.min.css" integrity="sha512-dPXYcDub/aeb08c63jRq/k6GaKccl256JQy/AnOq7CAnEZ9FzSL9wSbcZkMp4R26vBsMLFYH4kQ67/bbV8XaCQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark.min.css" integrity="sha512-rO+olRTkcf304DQBxSWxln8JXCzTHlKnIdnMUwYvQa9/Jd4cQaNkItIUj6Z4nvW1dqK0SKXLbn9h4KwZTNtAyw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/7.1.0/css/flag-icons.min.css" integrity="sha512-bZBu2H0+FGFz/stDN/L0k8J0G8qVsAL0ht1qg5kTwtAheiXwiRKyCq1frwfbSFSJN3jooR5kauE0YjtPzhZtJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <link href="../../../runebook.css" rel="stylesheet" type="text/css">
    <meta name="x-github" content="https://github.com/runebookdev/runebook">
            <meta name="x-i18n-doc" content="git">
        <script>
        function i18n(element) {
            // NOP
        }
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/3.0.5/js.cookie.js" integrity="sha512-F/dia2jKME12jwqiYDayeD+Rr/8jTWUD2wfbuJB0bzSwenSEnXsn4qQ/wVyXUCix5bmCAj8xJdtFr2OqUtjLAw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js" integrity="sha512-7Pi/otdlbbCR+LnW+F7PwFcSDJOuUJB3OxtEHbg4vSMvzvJjde4Po1v4BR9Gdc9aXNUNFVUY+SK51wWT8WF0Gg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/7.8.1/rxjs.umd.min.js" integrity="sha512-D9LDs8YUUVa4V9Gl4Zb+xqRAc7RCzooR3+zzebgK2RMu/KU+dh90pbjEEMzPiSyRSGbSp9j1pZnrO4joGa5WEg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/jquery.mark.min.js" integrity="sha512-mhbv5DqBMgrWL+32MmsDOt/OAvqr/cHimk6B8y/bx/xS88MVkYGPiVv2ixKVrkywF2qHplNRUvFsAHUdxZ3Krg==" crossorigin="anonymous"></script>
    <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-6424571640879890" crossorigin="anonymous"></script>    <script async src="https://www.googletagmanager.com/gtag/js?id=G-3G5BZ1QEDP"></script>
<script>
    window.dataLayer = window.dataLayer || [];

    function gtag() {
        dataLayer.push(arguments);
    }

    gtag('js', new Date());
    gtag('config', 'G-3G5BZ1QEDP');
</script>    <script>
(function(c, l, a, r, i, t, y) {
    c[a] = c[a] || function() {
        (c[a].q = c[a].q || []).push(arguments)
    };
    t = l.createElement(r);
    t.async = 1;
    t.src = "https://www.clarity.ms/tag/" + i + "?ref=bwt";
    y = l.getElementsByTagName(r)[0];
    y.parentNode.insertBefore(t, y);
})(window, document, "clarity", "script", "jto2hd94r9");
</script>    <script src="../../../theme.js"></script>
</head>

<body>
    <header class="bg-black">
        <div class="container">
            <div class="row">
                <div class="col">
                    <nav class="navbar navbar-expand-lg navbar-dark">
                        <a class="navbar-brand fw-bold" href="https://runebook.dev/ru">
                            <img alt="Runebook.dev" class="d-inline-block align-top mr-1" src="../../../assets/runebook_logo.webp" width="24" height="24">
                            Runebook.dev
                        </a>
                        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                            <span class="navbar-toggler-icon"></span>
                        </button>
                        <div class="collapse navbar-collapse" id="navbarSupportedContent">
                            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                                <li class="nav-item">
                                    <a class="nav-link" href="https://runebook.dev/ru#docs">Documentation</a>
                                </li>
                                <li class="nav-item">
                                    <a class="nav-link" href="https://runebook.dev/contributors">Contributors</a>
                                </li>
                                <li class="nav-item">
                                    <a class="nav-link" href="https://github.com/runebookdev/runebook/issues">GitHub</a>
                                </li>
                            </ul>
                                                                                                <button class="btn btn-success ms-2" id="showPopupButton">
                                        <i class="bi bi-translate"></i>
                                        Show English
                                    </button>
                                                                                        <div class="form-check form-switch ms-3">
                                <label class="text-light">
                                    <input class="form-check-input" type="checkbox" role="switch" id="theme-switch" checked>
                                    <i class="bi bi-moon-stars-fill"></i>
                                </label>
                            </div>
                        </div>
                    </nav>
                </div>
            </div>
        </div>
    </header>

    <!--sse-->
    <div class="container">
    <div class="row">
        <div class="col">
            <nav aria-label="breadcrumb" class="mt-2">
                <ol class="breadcrumb mb-1">
                    <li class="breadcrumb-item">
                        <a href="https://runebook.dev/ru#docs">
                            <span class="fi fi-ru"></span>                            Русский                        </a>
                    </li>
                    <li class="breadcrumb-item">
                        <a href="-index-.html">
                            Git                            2.43                        </a>
                    </li>
                                            <li class="breadcrumb-item">
                            <a href="-index-.html#Git">
                                Git                            </a>
                        </li>
                                    </ol>
            </nav>
        </div>
    </div>
    <br>

    <div class="row">
        <div class="col-md-9">
            <main>
                <article>

                    
                    <h1 class="text-body-emphasis" ><span data-i18n="a43ffc79e4b4f043885edc209efa170605f432e2e419cbb38e24909fc7f21fa5/38" data-source="git-http-backend" onmousemove="i18n(this)">git-http-backend</span></h1> <h2 class="text-body-emphasis"  id="_name"><span data-i18n="dcd1d5223f73b3a965c07e3ff5dbee3eedcfedb806686a05b9b3868a2c3d6d50/3a" data-source="Name" onmousemove="i18n(this)">Name</span></h2> <div> <p><span data-i18n="d42fa33e58fb175a0a38d110badabbc2a47a6a465623ed5284a0542bd74556e5/b0" data-source="git-http-backend - Server side implementation of Git over HTTP" onmousemove="i18n(this)">git-http-backend &mdash; &rcy;&iecy;&acy;&lcy;&icy;&zcy;&acy;&tscy;&icy;&yacy;  Git  &ncy;&acy; &scy;&tcy;&ocy;&rcy;&ocy;&ncy;&iecy; &scy;&iecy;&rcy;&vcy;&iecy;&rcy;&acy; &chcy;&iecy;&rcy;&iecy;&zcy; HTTP.</span></p> </div> <h2 class="text-body-emphasis"  id="_synopsis"><span data-i18n="8eb3755381519d7f0479d75446e56e20084834c0460d7ec94926932372ea6c47/0d" data-source="Synopsis" onmousemove="i18n(this)">Synopsis</span></h2> <div> <div> <pre class="hljs language-undefined">git http-backend</pre> </div> </div> <h2 class="text-body-emphasis"  id="_description"><span data-i18n="526e0087cc3f254d9f86f6c7d8e23d954c4dfda2b312efc29194ae8a860106ba/d3" data-source="Description" onmousemove="i18n(this)">Description</span></h2> <div> <p><span data-i18n="a19bfcd9458c01bfc5b81f1c279ff8e80a93bde08147df72e9ba4860d421be14/51" data-source="A simple CGI program to serve the contents of a Git repository to Git clients accessing the repository over http:// and https:// protocols. The program supports clients fetching using both the smart HTTP protocol and the backwards-compatible dumb HTTP protocol, as well as clients pushing using the smart HTTP protocol. It also supports Git&amp;rsquo;s more-efficient &amp;quot;v2&amp;quot; protocol if properly configured; see the discussion of &lt;code&gt;GIT_PROTOCOL&lt;/code&gt; in the ENVIRONMENT section below." onmousemove="i18n(this)">&Pcy;&rcy;&ocy;&scy;&tcy;&acy;&yacy; &pcy;&rcy;&ocy;&gcy;&rcy;&acy;&mcy;&mcy;&acy; CGI &dcy;&lcy;&yacy; &pcy;&rcy;&iecy;&dcy;&ocy;&scy;&tcy;&acy;&vcy;&lcy;&iecy;&ncy;&icy;&yacy; &scy;&ocy;&dcy;&iecy;&rcy;&zhcy;&icy;&mcy;&ocy;&gcy;&ocy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&yacy;  Git  &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&acy;&mcy;  Git , &ocy;&bcy;&rcy;&acy;&shchcy;&acy;&yucy;&shchcy;&icy;&mcy;&scy;&yacy; &kcy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&yucy; &pcy;&ocy; &pcy;&rcy;&ocy;&tcy;&ocy;&kcy;&ocy;&lcy;&acy;&mcy; http:// &icy; https://. &Pcy;&rcy;&ocy;&gcy;&rcy;&acy;&mcy;&mcy;&acy; &pcy;&ocy;&dcy;&dcy;&iecy;&rcy;&zhcy;&icy;&vcy;&acy;&iecy;&tcy; &vcy;&ycy;&bcy;&ocy;&rcy;&kcy;&ucy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&ocy;&vcy; &scy; &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&ncy;&icy;&iecy;&mcy; &kcy;&acy;&kcy; &icy;&ncy;&tcy;&iecy;&lcy;&lcy;&iecy;&kcy;&tcy;&ucy;&acy;&lcy;&softcy;&ncy;&ocy;&gcy;&ocy; &pcy;&rcy;&ocy;&tcy;&ocy;&kcy;&ocy;&lcy;&acy; HTTP, &tcy;&acy;&kcy; &icy; &ocy;&bcy;&rcy;&acy;&tcy;&ncy;&ocy; &scy;&ocy;&vcy;&mcy;&iecy;&scy;&tcy;&icy;&mcy;&ocy;&gcy;&ocy; &tcy;&ucy;&pcy;&ocy;&gcy;&ocy; &pcy;&rcy;&ocy;&tcy;&ocy;&kcy;&ocy;&lcy;&acy; HTTP, &acy; &tcy;&acy;&kcy;&zhcy;&iecy; &ocy;&tcy;&pcy;&rcy;&acy;&vcy;&kcy;&ucy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&ocy;&vcy; &scy; &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&ncy;&icy;&iecy;&mcy; &icy;&ncy;&tcy;&iecy;&lcy;&lcy;&iecy;&kcy;&tcy;&ucy;&acy;&lcy;&softcy;&ncy;&ocy;&gcy;&ocy; &pcy;&rcy;&ocy;&tcy;&ocy;&kcy;&ocy;&lcy;&acy; HTTP. &Ocy;&ncy; &tcy;&acy;&kcy;&zhcy;&iecy; &pcy;&ocy;&dcy;&dcy;&iecy;&rcy;&zhcy;&icy;&vcy;&acy;&iecy;&tcy; &bcy;&ocy;&lcy;&iecy;&iecy; &ecy;&fcy;&fcy;&iecy;&kcy;&tcy;&icy;&vcy;&ncy;&ycy;&jcy; &pcy;&rcy;&ocy;&tcy;&ocy;&kcy;&ocy;&lcy;  &quot;v2&quot;   Git , &iecy;&scy;&lcy;&icy; &ocy;&ncy; &pcy;&rcy;&acy;&vcy;&icy;&lcy;&softcy;&ncy;&ocy; &ncy;&acy;&scy;&tcy;&rcy;&ocy;&iecy;&ncy;; &scy;&mcy;. &ocy;&bcy;&scy;&ucy;&zhcy;&dcy;&iecy;&ncy;&icy;&iecy;  <code>GIT_PROTOCOL</code>  &vcy; &rcy;&acy;&zcy;&dcy;&iecy;&lcy;&iecy; &Ocy;&Kcy;&Rcy;&Ucy;&ZHcy;&Acy;&YUcy;&SHCHcy;&Acy;&YAcy; &Scy;&Rcy;&IEcy;&Dcy;&Acy; &ncy;&icy;&zhcy;&iecy;.</span></p> <p><span data-i18n="c9587a6fd047cec101e7faa3fa67ffc05c2350433f69641ce0b471e75f641552/08" data-source="It verifies that the directory has the magic file &amp;quot;git-daemon-export-ok&amp;quot;, and it will refuse to export any Git directory that hasn&amp;rsquo;t explicitly been marked for export this way (unless the &lt;code&gt;GIT_HTTP_EXPORT_ALL&lt;/code&gt; environment variable is set)." onmousemove="i18n(this)">&Ocy;&ncy; &pcy;&rcy;&ocy;&vcy;&iecy;&rcy;&yacy;&iecy;&tcy;, &chcy;&tcy;&ocy; &vcy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&iecy; &iecy;&scy;&tcy;&softcy; &vcy;&ocy;&lcy;&shcy;&iecy;&bcy;&ncy;&ycy;&jcy; &fcy;&acy;&jcy;&lcy;  &quot;git-daemon-export-ok&quot; , &icy; &ocy;&tcy;&kcy;&acy;&zcy;&ycy;&vcy;&acy;&iecy;&tcy;&scy;&yacy; &ecy;&kcy;&scy;&pcy;&ocy;&rcy;&tcy;&icy;&rcy;&ocy;&vcy;&acy;&tcy;&softcy; &lcy;&yucy;&bcy;&ocy;&jcy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;  Git , &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&jcy; &ncy;&iecy; &bcy;&ycy;&lcy; &yacy;&vcy;&ncy;&ocy; &pcy;&ocy;&mcy;&iecy;&chcy;&iecy;&ncy; &dcy;&lcy;&yacy; &ecy;&kcy;&scy;&pcy;&ocy;&rcy;&tcy;&acy; &tcy;&acy;&kcy;&icy;&mcy; &ocy;&bcy;&rcy;&acy;&zcy;&ocy;&mcy; (&iecy;&scy;&lcy;&icy; &ncy;&iecy; &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&lcy;&iecy;&ncy;&acy; &ZeroWidthSpace;&ZeroWidthSpace;&pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&acy;&yacy; &scy;&rcy;&iecy;&dcy;&ycy;  <code>GIT_HTTP_EXPORT_ALL</code> ).</span></p> <p><span data-i18n="046ccac8e44dbe24bef27512ce91a0de665312101574fe688757ac5f6340c82b/60" data-source="By default, only the &lt;code&gt;upload-pack&lt;/code&gt; service is enabled, which serves &lt;code&gt;git fetch-pack&lt;/code&gt; and &lt;code&gt;git ls-remote&lt;/code&gt; clients, which are invoked from &lt;code&gt;git fetch&lt;/code&gt;, &lt;code&gt;git pull&lt;/code&gt;, and &lt;code&gt;git clone&lt;/code&gt;. If the client is authenticated, the &lt;code&gt;receive-pack&lt;/code&gt; service is enabled, which serves &lt;code&gt;git send-pack&lt;/code&gt; clients, which is invoked from &lt;code&gt;git push&lt;/code&gt;." onmousemove="i18n(this)">&Pcy;&ocy; &ucy;&mcy;&ocy;&lcy;&chcy;&acy;&ncy;&icy;&yucy; &vcy;&kcy;&lcy;&yucy;&chcy;&iecy;&ncy;&acy; &tcy;&ocy;&lcy;&softcy;&kcy;&ocy; &scy;&lcy;&ucy;&zhcy;&bcy;&acy;  <code>upload-pack</code> , &kcy;&ocy;&tcy;&ocy;&rcy;&acy;&yacy; &ocy;&bcy;&scy;&lcy;&ucy;&zhcy;&icy;&vcy;&acy;&iecy;&tcy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&ocy;&vcy;  <code>git fetch-pack</code>  &icy;  <code>git ls-remote</code> , &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&iecy; &vcy;&ycy;&zcy;&ycy;&vcy;&acy;&yucy;&tcy;&scy;&yacy; &icy;&zcy;  <code>git fetch</code> ,  <code>git pull</code>  &icy;  <code>git clone</code> . &IEcy;&scy;&lcy;&icy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy; &acy;&ucy;&tcy;&iecy;&ncy;&tcy;&icy;&fcy;&icy;&tscy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;, &vcy;&kcy;&lcy;&yucy;&chcy;&acy;&iecy;&tcy;&scy;&yacy; &scy;&lcy;&ucy;&zhcy;&bcy;&acy;  <code>receive-pack</code> , &kcy;&ocy;&tcy;&ocy;&rcy;&acy;&yacy; &ocy;&bcy;&scy;&lcy;&ucy;&zhcy;&icy;&vcy;&acy;&iecy;&tcy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&ocy;&vcy;  <code>git send-pack</code> , &vcy;&ycy;&zcy;&ycy;&vcy;&acy;&iecy;&mcy;&acy;&yacy; &icy;&zcy;  <code>git push</code> .</span></p> </div> <h2 class="text-body-emphasis"  id="_services"><span data-i18n="604dce445e326d952308addc99bd3d0e3ffb0ed9a455e4aa0190641fc5facccc/56" data-source="Services" onmousemove="i18n(this)">Services</span></h2> <div> <p><span data-i18n="8edb2d1b548128e47b3cb95916cab5189651f793df96554aa96fae9ed793c949/12" data-source="These services can be enabled/disabled using the per-repository configuration file:" onmousemove="i18n(this)">&Ecy;&tcy;&icy; &scy;&lcy;&ucy;&zhcy;&bcy;&ycy; &mcy;&ocy;&zhcy;&ncy;&ocy; &vcy;&kcy;&lcy;&yucy;&chcy;&icy;&tcy;&softcy;/&ocy;&tcy;&kcy;&lcy;&yucy;&chcy;&icy;&tcy;&softcy; &scy; &pcy;&ocy;&mcy;&ocy;&shchcy;&softcy;&yucy; &fcy;&acy;&jcy;&lcy;&acy; &kcy;&ocy;&ncy;&fcy;&icy;&gcy;&ucy;&rcy;&acy;&tscy;&icy;&icy; &dcy;&lcy;&yacy; &kcy;&acy;&zhcy;&dcy;&ocy;&gcy;&ocy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&yacy;:</span></p> <div> <dl> <dt id="Documentation/git-http-backend.txt-httpgetanyfile"><span data-i18n="24fc55400281fb403d56b7071366accdd4c29b6f4c9e61fd79e16fbc2698f957/e6" data-source="http.getanyfile" onmousemove="i18n(this)">http.getanyfile</span></dt> <dd> <p><span data-i18n="c2a82afc65923108d2b1be494bdfd5f811134a10315450f3f1ffdf75deb3492e/aa" data-source="This serves Git clients older than version 1.6.6 that are unable to use the upload pack service. When enabled, clients are able to read any file within the repository, including objects that are no longer reachable from a branch but are still present. It is enabled by default, but a repository can disable it by setting this configuration value to &lt;code&gt;false&lt;/code&gt;." onmousemove="i18n(this)">&Ecy;&tcy;&ocy; &ocy;&bcy;&scy;&lcy;&ucy;&zhcy;&icy;&vcy;&acy;&iecy;&tcy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&ocy;&vcy;  Git  &scy;&tcy;&acy;&rcy;&shcy;&iecy; &vcy;&iecy;&rcy;&scy;&icy;&icy; 1.6.6, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&iecy; &ncy;&iecy; &mcy;&ocy;&gcy;&ucy;&tcy; &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&tcy;&softcy; &scy;&lcy;&ucy;&zhcy;&bcy;&ucy; &zcy;&acy;&gcy;&rcy;&ucy;&zcy;&kcy;&icy; &pcy;&acy;&kcy;&iecy;&tcy;&ocy;&vcy;. &IEcy;&scy;&lcy;&icy; &ecy;&tcy;&ocy;&tcy; &pcy;&acy;&rcy;&acy;&mcy;&iecy;&tcy;&rcy; &vcy;&kcy;&lcy;&yucy;&chcy;&iecy;&ncy;, &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&ycy; &mcy;&ocy;&gcy;&ucy;&tcy; &chcy;&icy;&tcy;&acy;&tcy;&softcy; &lcy;&yucy;&bcy;&ocy;&jcy; &fcy;&acy;&jcy;&lcy; &vcy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&icy;, &vcy;&kcy;&lcy;&yucy;&chcy;&acy;&yacy; &ocy;&bcy;&hardcy;&iecy;&kcy;&tcy;&ycy;, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&iecy; &bcy;&ocy;&lcy;&softcy;&shcy;&iecy; &ncy;&iecy; &dcy;&ocy;&scy;&tcy;&ucy;&pcy;&ncy;&ycy; &icy;&zcy; &vcy;&iecy;&tcy;&kcy;&icy;, &ncy;&ocy; &vcy;&scy;&iecy; &iecy;&shchcy;&iecy; &pcy;&rcy;&icy;&scy;&ucy;&tcy;&scy;&tcy;&vcy;&ucy;&yucy;&tcy;. &Ocy;&ncy; &vcy;&kcy;&lcy;&yucy;&chcy;&iecy;&ncy; &pcy;&ocy; &ucy;&mcy;&ocy;&lcy;&chcy;&acy;&ncy;&icy;&yucy;, &ncy;&ocy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&jcy; &mcy;&ocy;&zhcy;&iecy;&tcy; &ocy;&tcy;&kcy;&lcy;&yucy;&chcy;&icy;&tcy;&softcy; &iecy;&gcy;&ocy;, &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&icy;&vcy; &dcy;&lcy;&yacy; &ecy;&tcy;&ocy;&gcy;&ocy; &zcy;&ncy;&acy;&chcy;&iecy;&ncy;&icy;&yacy; &kcy;&ocy;&ncy;&fcy;&icy;&gcy;&ucy;&rcy;&acy;&tscy;&icy;&icy; &zcy;&ncy;&acy;&chcy;&iecy;&ncy;&icy;&iecy;  <code>false</code> .</span></p> </dd> <dt id="Documentation/git-http-backend.txt-httpuploadpack"><span data-i18n="bce00b8afaef1ff64e3ec36f29c0b35d523cb7fe0d4a10bf5cd0ca077f4aedce/87" data-source="http.uploadpack" onmousemove="i18n(this)">http.uploadpack</span></dt> <dd> <p><span data-i18n="da6773c5134ec831f05b0f7fdd5d0cceeb401b86b28e1a6dce1cfca391d3d0e0/ea" data-source="This serves &lt;code&gt;git fetch-pack&lt;/code&gt; and &lt;code&gt;git ls-remote&lt;/code&gt; clients. It is enabled by default, but a repository can disable it by setting this configuration value to &lt;code&gt;false&lt;/code&gt;." onmousemove="i18n(this)">&Ocy;&ncy; &ocy;&bcy;&scy;&lcy;&ucy;&zhcy;&icy;&vcy;&acy;&iecy;&tcy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&ocy;&vcy;  <code>git fetch-pack</code>  &icy;  <code>git ls-remote</code> . &Ocy;&ncy; &vcy;&kcy;&lcy;&yucy;&chcy;&iecy;&ncy; &pcy;&ocy; &ucy;&mcy;&ocy;&lcy;&chcy;&acy;&ncy;&icy;&yucy;, &ncy;&ocy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&jcy; &mcy;&ocy;&zhcy;&iecy;&tcy; &ocy;&tcy;&kcy;&lcy;&yucy;&chcy;&icy;&tcy;&softcy; &iecy;&gcy;&ocy;, &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&icy;&vcy; &dcy;&lcy;&yacy; &ecy;&tcy;&ocy;&gcy;&ocy; &zcy;&ncy;&acy;&chcy;&iecy;&ncy;&icy;&yacy; &kcy;&ocy;&ncy;&fcy;&icy;&gcy;&ucy;&rcy;&acy;&tscy;&icy;&icy; &zcy;&ncy;&acy;&chcy;&iecy;&ncy;&icy;&iecy;  <code>false</code> .</span></p> </dd> <dt id="Documentation/git-http-backend.txt-httpreceivepack"><span data-i18n="b2e34f8c6d5149af1d3fea5417c34ffd6cc9cfaa9ecb1e31af574b34e10e4ff0/f8" data-source="http.receivepack" onmousemove="i18n(this)">http.receivepack</span></dt> <dd> <p><span data-i18n="fc80bd662cdef4ee9f53478a6eeb9538426e3737331fdc3714a4350ad9631c8e/74" data-source="This serves &lt;code&gt;git send-pack&lt;/code&gt; clients, allowing push. It is disabled by default for anonymous users, and enabled by default for users authenticated by the web server. It can be disabled by setting this item to &lt;code&gt;false&lt;/code&gt;, or enabled for all users, including anonymous users, by setting it to &lt;code&gt;true&lt;/code&gt;." onmousemove="i18n(this)">&Ecy;&tcy;&ocy; &ocy;&bcy;&scy;&lcy;&ucy;&zhcy;&icy;&vcy;&acy;&iecy;&tcy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&ocy;&vcy;  <code>git send-pack</code> , &pcy;&ocy;&zcy;&vcy;&ocy;&lcy;&yacy;&yacy; &ocy;&scy;&ucy;&shchcy;&iecy;&scy;&tcy;&vcy;&lcy;&yacy;&tcy;&softcy; push. &Pcy;&ocy; &ucy;&mcy;&ocy;&lcy;&chcy;&acy;&ncy;&icy;&yucy; &ocy;&ncy; &ocy;&tcy;&kcy;&lcy;&yucy;&chcy;&iecy;&ncy; &dcy;&lcy;&yacy; &acy;&ncy;&ocy;&ncy;&icy;&mcy;&ncy;&ycy;&khcy; &pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&tcy;&iecy;&lcy;&iecy;&jcy; &icy; &vcy;&kcy;&lcy;&yucy;&chcy;&iecy;&ncy; &pcy;&ocy; &ucy;&mcy;&ocy;&lcy;&chcy;&acy;&ncy;&icy;&yucy; &dcy;&lcy;&yacy; &pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&tcy;&iecy;&lcy;&iecy;&jcy;, &acy;&ucy;&tcy;&iecy;&ncy;&tcy;&icy;&fcy;&icy;&tscy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&ncy;&ycy;&khcy; &vcy;&iecy;&bcy;-&scy;&iecy;&rcy;&vcy;&iecy;&rcy;&ocy;&mcy;. &IEcy;&gcy;&ocy; &mcy;&ocy;&zhcy;&ncy;&ocy; &ocy;&tcy;&kcy;&lcy;&yucy;&chcy;&icy;&tcy;&softcy;, &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&icy;&vcy; &dcy;&lcy;&yacy; &ecy;&tcy;&ocy;&gcy;&ocy; &ecy;&lcy;&iecy;&mcy;&iecy;&ncy;&tcy;&acy; &zcy;&ncy;&acy;&chcy;&iecy;&ncy;&icy;&iecy;  <code>false</code> , &icy;&lcy;&icy; &vcy;&kcy;&lcy;&yucy;&chcy;&icy;&tcy;&softcy; &dcy;&lcy;&yacy; &vcy;&scy;&iecy;&khcy; &pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&tcy;&iecy;&lcy;&iecy;&jcy;, &vcy;&kcy;&lcy;&yucy;&chcy;&acy;&yacy; &acy;&ncy;&ocy;&ncy;&icy;&mcy;&ncy;&ycy;&khcy; &pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&tcy;&iecy;&lcy;&iecy;&jcy;, &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&icy;&vcy; &dcy;&lcy;&yacy; &ncy;&iecy;&gcy;&ocy; &zcy;&ncy;&acy;&chcy;&iecy;&ncy;&icy;&iecy;  <code>true</code> .</span></p> </dd> </dl> </div> </div> <h2 class="text-body-emphasis"  id="_url_translation"><span data-i18n="e1d11e18f63eace047b0bc649f536182304834a3baa44dd299cf796d629d6431/96" data-source="Url translation" onmousemove="i18n(this)">Url translation</span></h2> <div> <p><span data-i18n="969ff491a128dd9d0aeeb0e371ed28831c7b012e87c604db3511d4a92b8a5dbc/2c" data-source="To determine the location of the repository on disk, &lt;code&gt;git http-backend&lt;/code&gt; concatenates the environment variables PATH_INFO, which is set automatically by the web server, and GIT_PROJECT_ROOT, which must be set manually in the web server configuration. If GIT_PROJECT_ROOT is not set, &lt;code&gt;git http-backend&lt;/code&gt; reads PATH_TRANSLATED, which is also set automatically by the web server." onmousemove="i18n(this)">&CHcy;&tcy;&ocy;&bcy;&ycy; &ocy;&pcy;&rcy;&iecy;&dcy;&iecy;&lcy;&icy;&tcy;&softcy; &rcy;&acy;&scy;&pcy;&ocy;&lcy;&ocy;&zhcy;&iecy;&ncy;&icy;&iecy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&yacy; &ncy;&acy; &dcy;&icy;&scy;&kcy;&iecy;,  <code>git http-backend</code>  &ocy;&bcy;&hardcy;&iecy;&dcy;&icy;&ncy;&yacy;&iecy;&tcy; &pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ycy;&iecy; &scy;&rcy;&iecy;&dcy;&ycy; PATH_INFO, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&iecy; &ucy;&scy;&tcy;&acy;&ncy;&acy;&vcy;&lcy;&icy;&vcy;&acy;&yucy;&tcy;&scy;&yacy; &acy;&vcy;&tcy;&ocy;&mcy;&acy;&tcy;&icy;&chcy;&iecy;&scy;&kcy;&icy; &vcy;&iecy;&bcy;-&scy;&iecy;&rcy;&vcy;&iecy;&rcy;&ocy;&mcy;, &icy; GIT_PROJECT_ROOT, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&iecy; &ncy;&iecy;&ocy;&bcy;&khcy;&ocy;&dcy;&icy;&mcy;&ocy; &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&icy;&tcy;&softcy; &vcy;&rcy;&ucy;&chcy;&ncy;&ucy;&yucy; &vcy; &kcy;&ocy;&ncy;&fcy;&icy;&gcy;&ucy;&rcy;&acy;&tscy;&icy;&icy; &vcy;&iecy;&bcy;-&scy;&iecy;&rcy;&vcy;&iecy;&rcy;&acy;. &IEcy;&scy;&lcy;&icy; GIT_PROJECT_ROOT &ncy;&iecy; &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&lcy;&iecy;&ncy;,  <code>git http-backend</code>  &scy;&chcy;&icy;&tcy;&ycy;&vcy;&acy;&iecy;&tcy; PATH_TRANSLATED, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&jcy; &tcy;&acy;&kcy;&zhcy;&iecy; &acy;&vcy;&tcy;&ocy;&mcy;&acy;&tcy;&icy;&chcy;&iecy;&scy;&kcy;&icy; &ucy;&scy;&tcy;&acy;&ncy;&acy;&vcy;&lcy;&icy;&vcy;&acy;&iecy;&tcy;&scy;&yacy; &vcy;&iecy;&bcy;-&scy;&iecy;&rcy;&vcy;&iecy;&rcy;&ocy;&mcy;.</span></p> </div> <h2 class="text-body-emphasis"  id="_examples"><span data-i18n="e68ee04dff59551b7d1ae07a2f8a00dc61d841628948da3d2781630706a05e92/38" data-source="Examples" onmousemove="i18n(this)">Examples</span></h2> <div> <p><span data-i18n="adf411df816f7618910195ea1af81d1586bf932dcfd75d0931e815d2a8951dfe/e0" data-source="All of the following examples map &lt;code&gt;http://$hostname/git/foo/bar.git&lt;/code&gt; to &lt;code&gt;/var/www/git/foo/bar.git&lt;/code&gt;." onmousemove="i18n(this)">&Vcy;&scy;&iecy; &scy;&lcy;&iecy;&dcy;&ucy;&yucy;&shchcy;&icy;&iecy; &pcy;&rcy;&icy;&mcy;&iecy;&rcy;&ycy; &scy;&ocy;&pcy;&ocy;&scy;&tcy;&acy;&vcy;&lcy;&yacy;&yucy;&tcy;  <code>http://$hostname/git/foo/bar.git</code>  &scy;  <code>/var/www/git/foo/bar.git</code> .</span></p> <div> <dl> <dt id="Documentation/git-http-backend.txt-Apache2x"><span data-i18n="83c9931cd27ea87ab6cad5e1cf683de3552b92a0069cc27b5685300dcc6fcf6a/ef" data-source="Apache 2.x" onmousemove="i18n(this)">Apache 2.x</span></dt> <dd> <p><span data-i18n="dac3a1824ee0215d7f293600a5f3aaa89bdcd333aecf95bc204fb2daed01cb3a/b8" data-source="Ensure mod_cgi, mod_alias, and mod_env are enabled, set GIT_PROJECT_ROOT (or DocumentRoot) appropriately, and create a ScriptAlias to the CGI:" onmousemove="i18n(this)">&Ucy;&bcy;&iecy;&dcy;&icy;&tcy;&iecy;&scy;&softcy;, &chcy;&tcy;&ocy; mod_cgi, mod_alias &icy; mod_env &vcy;&kcy;&lcy;&yucy;&chcy;&iecy;&ncy;&ycy;, &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&icy;&tcy;&iecy; GIT_PROJECT_ROOT (&icy;&lcy;&icy; DocumentRoot) &scy;&ocy;&ocy;&tcy;&vcy;&iecy;&tcy;&scy;&tcy;&vcy;&ucy;&yucy;&shchcy;&icy;&mcy; &ocy;&bcy;&rcy;&acy;&zcy;&ocy;&mcy; &icy; &scy;&ocy;&zcy;&dcy;&acy;&jcy;&tcy;&iecy; ScriptAlias &ZeroWidthSpace;&ZeroWidthSpace;&dcy;&lcy;&yacy; CGI:</span></p> <div> <div> <pre class="hljs language-bash">SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/

<span class="hljs-comment" title="# This is not strictly necessary using Apache and a modern version of"># &Ecy;&tcy;&ocy; &ncy;&iecy; &yacy;&vcy;&lcy;&yacy;&iecy;&tcy;&scy;&yacy; &scy;&tcy;&rcy;&ocy;&gcy;&ocy; &ncy;&iecy;&ocy;&bcy;&khcy;&ocy;&dcy;&icy;&mcy;&ycy;&mcy; &pcy;&rcy;&icy; &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&ncy;&icy;&icy; Apache &icy; &scy;&ocy;&vcy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ocy;&jcy; &vcy;&iecy;&rcy;&scy;&icy;&icy;</span>
<span class="hljs-comment" title="# git-http-backend, as the webserver will pass along the header in the"># git-http-backend, &tcy;&acy;&kcy; &kcy;&acy;&kcy; &vcy;&iecy;&bcy;-&scy;&iecy;&rcy;&vcy;&iecy;&rcy; &pcy;&iecy;&rcy;&iecy;&dcy;&acy;&scy;&tcy; &zcy;&acy;&gcy;&ocy;&lcy;&ocy;&vcy;&ocy;&kcy; &vcy;</span>
<span class="hljs-comment" title="# environment as HTTP_GIT_PROTOCOL, and http-backend will copy that into"># &scy;&rcy;&iecy;&dcy;&ucy; &kcy;&acy;&kcy; HTTP_GIT_PROTOCOL, &icy; http-backend &scy;&kcy;&ocy;&pcy;&icy;&rcy;&ucy;&iecy;&tcy; &ecy;&tcy;&ocy; &vcy;</span>
<span class="hljs-comment" title="# GIT_PROTOCOL. But you may need this line (or something similar if you"># GIT_&Pcy;&Rcy;&Ocy;&Tcy;&Ocy;&Kcy;&Ocy;&Lcy;. &Ncy;&ocy; &vcy;&acy;&mcy; &mcy;&ocy;&zhcy;&iecy;&tcy; &pcy;&ocy;&ncy;&acy;&dcy;&ocy;&bcy;&icy;&tcy;&softcy;&scy;&yacy; &ecy;&tcy;&acy; &scy;&tcy;&rcy;&ocy;&kcy;&acy; (&icy;&lcy;&icy; &chcy;&tcy;&ocy;-&tcy;&ocy; &pcy;&ocy;&dcy;&ocy;&bcy;&ncy;&ocy;&iecy;, &iecy;&scy;&lcy;&icy; &vcy;&ycy;</span>
<span class="hljs-comment" title="# are using a different webserver), or if you want to support older Git"># &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ucy;&iecy;&tcy;&iecy; &dcy;&rcy;&ucy;&gcy;&ocy;&jcy; &vcy;&iecy;&bcy;-&scy;&iecy;&rcy;&vcy;&iecy;&rcy;), &icy;&lcy;&icy; &iecy;&scy;&lcy;&icy; &vcy;&ycy; &khcy;&ocy;&tcy;&icy;&tcy;&iecy; &pcy;&ocy;&dcy;&dcy;&iecy;&rcy;&zhcy;&icy;&vcy;&acy;&tcy;&softcy; &bcy;&ocy;&lcy;&iecy;&iecy; &scy;&tcy;&acy;&rcy;&ucy;&yucy; &vcy;&iecy;&rcy;&scy;&icy;&yucy; Git</span>
<span class="hljs-comment" title="# versions that did not do that copying."># &vcy;&iecy;&rcy;&scy;&icy;&icy;, &vcy; &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&khcy; &ecy;&tcy;&ocy; &kcy;&ocy;&pcy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&icy;&iecy; &ncy;&iecy; &vcy;&ycy;&pcy;&ocy;&lcy;&ncy;&yacy;&lcy;&ocy;&scy;&softcy;.</span>
<span class="hljs-comment">#</span>
<span class="hljs-comment" title="# Having the webserver set up GIT_PROTOCOL is perfectly fine even with"># &Ncy;&acy;&scy;&tcy;&rcy;&ocy;&icy;&tcy;&softcy; GIT_PROTOCOL &ncy;&acy; &vcy;&iecy;&bcy;-&scy;&iecy;&rcy;&vcy;&iecy;&rcy;&iecy; &vcy;&pcy;&ocy;&lcy;&ncy;&iecy; &ncy;&ocy;&rcy;&mcy;&acy;&lcy;&softcy;&ncy;&ocy;, &dcy;&acy;&zhcy;&iecy; &iecy;&scy;&lcy;&icy;</span>
<span class="hljs-comment" title="# modern versions (and will take precedence over HTTP_GIT_PROTOCOL,"># &scy;&ocy;&vcy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ycy;&iecy; &vcy;&iecy;&rcy;&scy;&icy;&icy; (&icy; &bcy;&ucy;&dcy;&ucy;&tcy; &icy;&mcy;&iecy;&tcy;&softcy; &pcy;&rcy;&icy;&ocy;&rcy;&icy;&tcy;&iecy;&tcy; &ncy;&acy;&dcy; HTTP_GIT_PROTOCOL,</span>
<span class="hljs-comment" title="# which means it can be used to override the client&apos;s request)."># &chcy;&tcy;&ocy; &ocy;&zcy;&ncy;&acy;&chcy;&acy;&iecy;&tcy;, &chcy;&tcy;&ocy; &iecy;&gcy;&ocy; &mcy;&ocy;&zhcy;&ncy;&ocy; &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&tcy;&softcy; &dcy;&lcy;&yacy; &ocy;&tcy;&mcy;&iecy;&ncy;&ycy; &zcy;&acy;&pcy;&rcy;&ocy;&scy;&acy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&acy;).</span>
SetEnvIf Git-Protocol <span class="hljs-string">&quot;.*&quot;</span> GIT_PROTOCOL=<span class="hljs-variable">$0</span></pre> </div> </div> <p><span data-i18n="98e42b44f979eb49fa83094945e1002e7086c855a05058336c41da22a714517d/db" data-source="To enable anonymous read access but authenticated write access, require authorization for both the initial ref advertisement (which we detect as a push via the service parameter in the query string), and the receive-pack invocation itself:" onmousemove="i18n(this)">&CHcy;&tcy;&ocy;&bcy;&ycy; &vcy;&kcy;&lcy;&yucy;&chcy;&icy;&tcy;&softcy; &acy;&ncy;&ocy;&ncy;&icy;&mcy;&ncy;&ycy;&jcy; &dcy;&ocy;&scy;&tcy;&ucy;&pcy; &dcy;&lcy;&yacy; &chcy;&tcy;&iecy;&ncy;&icy;&yacy;, &ncy;&ocy; &acy;&ucy;&tcy;&iecy;&ncy;&tcy;&icy;&fcy;&icy;&tscy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&ncy;&ycy;&jcy; &dcy;&ocy;&scy;&tcy;&ucy;&pcy; &dcy;&lcy;&yacy; &zcy;&acy;&pcy;&icy;&scy;&icy;, &pcy;&ocy;&tcy;&rcy;&iecy;&bcy;&ucy;&iecy;&tcy;&scy;&yacy; &acy;&vcy;&tcy;&ocy;&rcy;&icy;&zcy;&acy;&tscy;&icy;&yacy; &kcy;&acy;&kcy; &dcy;&lcy;&yacy; &pcy;&iecy;&rcy;&vcy;&ocy;&ncy;&acy;&chcy;&acy;&lcy;&softcy;&ncy;&ocy;&gcy;&ocy; &ocy;&bcy;&hardcy;&yacy;&vcy;&lcy;&iecy;&ncy;&icy;&yacy; ref (&kcy;&ocy;&tcy;&ocy;&rcy;&ocy;&iecy; &mcy;&ycy; &ocy;&pcy;&rcy;&iecy;&dcy;&iecy;&lcy;&yacy;&iecy;&mcy; &kcy;&acy;&kcy; push-&ucy;&vcy;&iecy;&dcy;&ocy;&mcy;&lcy;&iecy;&ncy;&icy;&iecy; &chcy;&iecy;&rcy;&iecy;&zcy; &pcy;&acy;&rcy;&acy;&mcy;&iecy;&tcy;&rcy; &scy;&lcy;&ucy;&zhcy;&bcy;&ycy; &vcy; &scy;&tcy;&rcy;&ocy;&kcy;&iecy; &zcy;&acy;&pcy;&rcy;&ocy;&scy;&acy;), &tcy;&acy;&kcy; &icy; &dcy;&lcy;&yacy; &scy;&acy;&mcy;&ocy;&gcy;&ocy; &vcy;&ycy;&zcy;&ocy;&vcy;&acy; &pcy;&acy;&kcy;&iecy;&tcy;&acy; &pcy;&ocy;&lcy;&ucy;&chcy;&iecy;&ncy;&icy;&yacy;:</span></p> <div> <div> <pre class="hljs language-perl">RewriteCond %{QUERY_STRING} service=git-receive-<span class="hljs-keyword">pack</span> [OR]
RewriteCond %{REQUEST_URI} /git-receive-<span class="hljs-keyword">pack</span>$
RewriteRule ^<span class="hljs-regexp">/git/</span> - [E=AUTHREQUIRED:yes]

&lt;LocationMatch <span class="hljs-string">&quot;^/git/&quot;</span>&gt;
        Order Deny,Allow
        Deny from env=AUTHREQUIRED

        AuthType Basic
        AuthName <span class="hljs-string">&quot;Git Access&quot;</span>
        Require group committers
        Satisfy Any
        ...
&lt;/LocationMatch&gt;</pre> </div> </div> <p><span data-i18n="f82f82d758bb8f293d2e6e4223f7780a635f190a2f928de980f1fa758f7bfce6/a2" data-source="If you do not have &lt;code&gt;mod_rewrite&lt;/code&gt; available to match against the query string, it is sufficient to just protect &lt;code&gt;git-receive-pack&lt;/code&gt; itself, like:" onmousemove="i18n(this)">&IEcy;&scy;&lcy;&icy; &ucy; &vcy;&acy;&scy; &ncy;&iecy;&tcy;  <code>mod_rewrite</code> , &dcy;&ocy;&scy;&tcy;&ucy;&pcy;&ncy;&ocy;&gcy;&ocy; &dcy;&lcy;&yacy; &scy;&ocy;&pcy;&ocy;&scy;&tcy;&acy;&vcy;&lcy;&iecy;&ncy;&icy;&yacy; &scy;&ocy; &scy;&tcy;&rcy;&ocy;&kcy;&ocy;&jcy; &zcy;&acy;&pcy;&rcy;&ocy;&scy;&acy;, &dcy;&ocy;&scy;&tcy;&acy;&tcy;&ocy;&chcy;&ncy;&ocy; &pcy;&rcy;&ocy;&scy;&tcy;&ocy; &zcy;&acy;&shchcy;&icy;&tcy;&icy;&tcy;&softcy; &scy;&acy;&mcy;  <code>git-receive-pack</code> , &ncy;&acy;&pcy;&rcy;&icy;&mcy;&iecy;&rcy;:</span></p> <div> <div> <pre class="hljs language-csharp">&lt;LocationMatch <span class="hljs-string">&quot;^/git/.*/git-receive-pack$&quot;</span>&gt;
        AuthType Basic
        AuthName <span class="hljs-string">&quot;Git Access&quot;</span>
        Require <span class="hljs-keyword">group</span> committers
        ...
&lt;/LocationMatch&gt;</pre> </div> </div> <p><span data-i18n="023a7ee475a33de43cccc4319964a5e974fb52913d568b3f59155f3b6768b605/88" data-source="In this mode, the server will not request authentication until the client actually starts the object negotiation phase of the push, rather than during the initial contact. For this reason, you must also enable the &lt;code&gt;http.receivepack&lt;/code&gt; config option in any repositories that should accept a push. The default behavior, if &lt;code&gt;http.receivepack&lt;/code&gt; is not set, is to reject any pushes by unauthenticated users; the initial request will therefore report &lt;code&gt;403 Forbidden&lt;/code&gt; to the client, without even giving an opportunity for authentication." onmousemove="i18n(this)">&Vcy; &ecy;&tcy;&ocy;&mcy; &rcy;&iecy;&zhcy;&icy;&mcy;&iecy; &scy;&iecy;&rcy;&vcy;&iecy;&rcy; &ncy;&iecy; &bcy;&ucy;&dcy;&iecy;&tcy; &zcy;&acy;&pcy;&rcy;&acy;&shcy;&icy;&vcy;&acy;&tcy;&softcy; &acy;&ucy;&tcy;&iecy;&ncy;&tcy;&icy;&fcy;&icy;&kcy;&acy;&tscy;&icy;&yucy; &dcy;&ocy; &tcy;&iecy;&khcy; &pcy;&ocy;&rcy;, &pcy;&ocy;&kcy;&acy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy; &fcy;&acy;&kcy;&tcy;&icy;&chcy;&iecy;&scy;&kcy;&icy; &ncy;&iecy; &ncy;&acy;&chcy;&ncy;&iecy;&tcy; &fcy;&acy;&zcy;&ucy; &scy;&ocy;&gcy;&lcy;&acy;&scy;&ocy;&vcy;&acy;&ncy;&icy;&yacy; &ocy;&bcy;&hardcy;&iecy;&kcy;&tcy;&acy; push-&ucy;&vcy;&iecy;&dcy;&ocy;&mcy;&lcy;&iecy;&ncy;&icy;&yacy;, &acy; &ncy;&iecy; &vcy;&ocy; &vcy;&rcy;&iecy;&mcy;&yacy; &pcy;&iecy;&rcy;&vcy;&ocy;&ncy;&acy;&chcy;&acy;&lcy;&softcy;&ncy;&ocy;&gcy;&ocy; &kcy;&ocy;&ncy;&tcy;&acy;&kcy;&tcy;&acy;. &Pcy;&ocy; &ecy;&tcy;&ocy;&jcy; &pcy;&rcy;&icy;&chcy;&icy;&ncy;&iecy; &vcy;&ycy; &tcy;&acy;&kcy;&zhcy;&iecy; &dcy;&ocy;&lcy;&zhcy;&ncy;&ycy; &vcy;&kcy;&lcy;&yucy;&chcy;&icy;&tcy;&softcy; &ocy;&pcy;&tscy;&icy;&yucy; &kcy;&ocy;&ncy;&fcy;&icy;&gcy;&ucy;&rcy;&acy;&tscy;&icy;&icy;  <code>http.receivepack</code>  &vcy;&ocy; &vcy;&scy;&iecy;&khcy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&yacy;&khcy;, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&iecy; &dcy;&ocy;&lcy;&zhcy;&ncy;&ycy; &pcy;&rcy;&icy;&ncy;&icy;&mcy;&acy;&tcy;&softcy; push-&ucy;&vcy;&iecy;&dcy;&ocy;&mcy;&lcy;&iecy;&ncy;&icy;&yacy;. &Pcy;&ocy;&vcy;&iecy;&dcy;&iecy;&ncy;&icy;&iecy; &pcy;&ocy; &ucy;&mcy;&ocy;&lcy;&chcy;&acy;&ncy;&icy;&yucy;, &iecy;&scy;&lcy;&icy;  <code>http.receivepack</code>  &ncy;&iecy; &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&lcy;&iecy;&ncy;, &zcy;&acy;&kcy;&lcy;&yucy;&chcy;&acy;&iecy;&tcy;&scy;&yacy; &vcy; &ocy;&tcy;&kcy;&lcy;&ocy;&ncy;&iecy;&ncy;&icy;&icy; &lcy;&yucy;&bcy;&ycy;&khcy; &zcy;&acy;&pcy;&rcy;&ocy;&scy;&ocy;&vcy; &ocy;&tcy; &ncy;&iecy;&acy;&ucy;&tcy;&iecy;&ncy;&tcy;&icy;&fcy;&icy;&tscy;&icy;&rcy;&ocy;&vcy;&acy;&ncy;&ncy;&ycy;&khcy; &pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&tcy;&iecy;&lcy;&iecy;&jcy;; &Tcy;&acy;&kcy;&icy;&mcy; &ocy;&bcy;&rcy;&acy;&zcy;&ocy;&mcy;, &pcy;&iecy;&rcy;&vcy;&ocy;&ncy;&acy;&chcy;&acy;&lcy;&softcy;&ncy;&ycy;&jcy; &zcy;&acy;&pcy;&rcy;&ocy;&scy; &scy;&ocy;&ocy;&bcy;&shchcy;&icy;&tcy; &kcy;&lcy;&icy;&iecy;&ncy;&tcy;&ucy;  <code>403 Forbidden</code> , &dcy;&acy;&zhcy;&iecy; &ncy;&iecy; &dcy;&acy;&vcy;&acy;&yacy; &vcy;&ocy;&zcy;&mcy;&ocy;&zhcy;&ncy;&ocy;&scy;&tcy;&icy; &dcy;&lcy;&yacy; &acy;&ucy;&tcy;&iecy;&ncy;&tcy;&icy;&fcy;&icy;&kcy;&acy;&tscy;&icy;&icy;.</span></p> <p><span data-i18n="2c80bc669916714611180539958e97874298752b8da004fda8a98b2daa66ce73/ed" data-source="To require authentication for both reads and writes, use a Location directive around the repository, or one of its parent directories:" onmousemove="i18n(this)">&CHcy;&tcy;&ocy;&bcy;&ycy; &tcy;&rcy;&iecy;&bcy;&ocy;&vcy;&acy;&tcy;&softcy; &acy;&ucy;&tcy;&iecy;&ncy;&tcy;&icy;&fcy;&icy;&kcy;&acy;&tscy;&icy;&yucy; &kcy;&acy;&kcy; &dcy;&lcy;&yacy; &chcy;&tcy;&iecy;&ncy;&icy;&yacy;, &tcy;&acy;&kcy; &icy; &dcy;&lcy;&yacy; &zcy;&acy;&pcy;&icy;&scy;&icy;, &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ucy;&jcy;&tcy;&iecy; &dcy;&icy;&rcy;&iecy;&kcy;&tcy;&icy;&vcy;&ucy; Location &dcy;&lcy;&yacy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&yacy; &icy;&lcy;&icy; &ocy;&dcy;&ncy;&ocy;&gcy;&ocy; &icy;&zcy; &iecy;&gcy;&ocy; &rcy;&ocy;&dcy;&icy;&tcy;&iecy;&lcy;&softcy;&scy;&kcy;&icy;&khcy; &kcy;&acy;&tcy;&acy;&lcy;&ocy;&gcy;&ocy;&vcy;:</span></p> <div> <div> <pre class="hljs language-csharp">&lt;Location /git/<span class="hljs-keyword">private</span>&gt;
        AuthType Basic
        AuthName <span class="hljs-string">&quot;Private Git Access&quot;</span>
        Require <span class="hljs-keyword">group</span> committers
        ...
&lt;/Location&gt;</pre> </div> </div> <p><span data-i18n="332e8a17870721367837543a889a5b56f8f826efc61bfdd6741f80d86d6b15cd/5b" data-source="To serve gitweb at the same url, use a ScriptAliasMatch to only those URLs that &lt;code&gt;git http-backend&lt;/code&gt; can handle, and forward the rest to gitweb:" onmousemove="i18n(this)">&CHcy;&tcy;&ocy;&bcy;&ycy; &ocy;&bcy;&scy;&lcy;&ucy;&zhcy;&icy;&vcy;&acy;&tcy;&softcy; gitweb &pcy;&ocy; &tcy;&ocy;&mcy;&ucy; &zhcy;&iecy; URL-&acy;&dcy;&rcy;&iecy;&scy;&ucy;, &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ucy;&jcy;&tcy;&iecy; ScriptAliasMatch &tcy;&ocy;&lcy;&softcy;&kcy;&ocy; &dcy;&lcy;&yacy; &tcy;&iecy;&khcy; URL-&acy;&dcy;&rcy;&iecy;&scy;&ocy;&vcy;, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&iecy; &mcy;&ocy;&zhcy;&iecy;&tcy; &ocy;&bcy;&rcy;&acy;&bcy;&acy;&tcy;&ycy;&vcy;&acy;&tcy;&softcy;  <code>git http-backend</code> , &acy; &ocy;&scy;&tcy;&acy;&lcy;&softcy;&ncy;&ycy;&iecy; &pcy;&iecy;&rcy;&iecy;&ncy;&acy;&pcy;&rcy;&acy;&vcy;&softcy;&tcy;&iecy; &vcy; gitweb:</span></p> <div> <div> <pre class="hljs language-bash">ScriptAliasMatch \
        <span class="hljs-string">&quot;(?x)^/git/(.*/(HEAD | \
                        info/refs | \
                        objects/(info/[^/]+ | \
                                 [0-9a-f]{2}/[0-9a-f]{38} | \
                                 pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
                        git-(upload|receive)-pack))$&quot;</span> \
        /usr/libexec/git-core/git-http-backend/<span class="hljs-variable">$1</span>

ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/</pre> </div> </div> <p><span data-i18n="c36f7d563b487738f4396f14b008ee621ce851a1e2313f81497cbf2338e08f3c/89" data-source="To serve multiple repositories from different &lt;a href=&quot;gitnamespaces&quot;&gt;gitnamespaces[7]&lt;/a&gt; in a single repository:" onmousemove="i18n(this)">&CHcy;&tcy;&ocy;&bcy;&ycy; &ocy;&bcy;&scy;&lcy;&ucy;&zhcy;&icy;&vcy;&acy;&tcy;&softcy; &ncy;&iecy;&scy;&kcy;&ocy;&lcy;&softcy;&kcy;&ocy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&iecy;&vcy; &icy;&zcy; &rcy;&acy;&zcy;&ncy;&ycy;&khcy;  <a href="gitnamespaces.html">gitnamespaces[7]</a>  &vcy; &ocy;&dcy;&ncy;&ocy;&mcy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&icy;:</span></p> <div> <div> <pre class="hljs language-javascript"><span class="hljs-title class_">SetEnvIf</span> <span class="hljs-title class_">Request</span>_URI <span class="hljs-string">&quot;^/git/([^/]*)&quot;</span> <span class="hljs-variable constant_">GIT_NAMESPACE</span>=$1
<span class="hljs-title class_">ScriptAliasMatch</span> ^<span class="hljs-regexp">/git/</span>[^<span class="hljs-regexp">/]*(.*) /u</span>sr/libexec/git-core/git-http-backend/storage.<span class="hljs-property">git$1</span></pre> </div> </div> </dd> <dt id="Documentation/git-http-backend.txt-AcceleratedstaticApache2x"><span data-i18n="9e53cd854035eef84f592e948a8d02d0b5fa706663160f1af72ed368a9308738/09" data-source="Accelerated static Apache 2.x" onmousemove="i18n(this)">&Ucy;&scy;&kcy;&ocy;&rcy;&iecy;&ncy;&ncy;&ycy;&jcy;  static  Apache 2.x</span></dt> <dd> <p><span data-i18n="ebcc6c34c294899cfc7880f5bdb0a84b14ba6202ea6b5374da5d41f656beca70/1f" data-source="Similar to the above, but Apache can be used to return static files that are stored on disk. On many systems this may be more efficient as Apache can ask the kernel to copy the file contents from the file system directly to the network:" onmousemove="i18n(this)">&Acy;&ncy;&acy;&lcy;&ocy;&gcy;&icy;&chcy;&ncy;&ocy; &ocy;&pcy;&icy;&scy;&acy;&ncy;&ncy;&ocy;&mcy;&ucy; &vcy;&ycy;&shcy;&iecy;, &ncy;&ocy; Apache &mcy;&ocy;&zhcy;&ncy;&ocy; &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&tcy;&softcy; &dcy;&lcy;&yacy; &vcy;&ocy;&zcy;&vcy;&rcy;&acy;&tcy;&acy; &fcy;&acy;&jcy;&lcy;&ocy;&vcy;  static , &khcy;&rcy;&acy;&ncy;&yacy;&shchcy;&icy;&khcy;&scy;&yacy; &ncy;&acy; &dcy;&icy;&scy;&kcy;&iecy;. &Vcy;&ocy; &mcy;&ncy;&ocy;&gcy;&icy;&khcy; &scy;&icy;&scy;&tcy;&iecy;&mcy;&acy;&khcy; &ecy;&tcy;&ocy; &mcy;&ocy;&zhcy;&iecy;&tcy; &bcy;&ycy;&tcy;&softcy; &bcy;&ocy;&lcy;&iecy;&iecy; &ecy;&fcy;&fcy;&iecy;&kcy;&tcy;&icy;&vcy;&ncy;&ocy;, &pcy;&ocy;&scy;&kcy;&ocy;&lcy;&softcy;&kcy;&ucy; Apache &mcy;&ocy;&zhcy;&iecy;&tcy; &pcy;&ocy;&pcy;&rcy;&ocy;&scy;&icy;&tcy;&softcy; &yacy;&dcy;&rcy;&ocy; &ZeroWidthSpace;&ZeroWidthSpace;&scy;&kcy;&ocy;&pcy;&icy;&rcy;&ocy;&vcy;&acy;&tcy;&softcy; &scy;&ocy;&dcy;&iecy;&rcy;&zhcy;&icy;&mcy;&ocy;&iecy; &fcy;&acy;&jcy;&lcy;&acy; &icy;&zcy; &fcy;&acy;&jcy;&lcy;&ocy;&vcy;&ocy;&jcy; &scy;&icy;&scy;&tcy;&iecy;&mcy;&ycy; &ncy;&iecy;&pcy;&ocy;&scy;&rcy;&iecy;&dcy;&scy;&tcy;&vcy;&iecy;&ncy;&ncy;&ocy; &vcy; &scy;&iecy;&tcy;&softcy;:</span></p> <div> <div> <pre class="hljs language-javascript"><span class="hljs-title class_">SetEnv</span> <span class="hljs-variable constant_">GIT_PROJECT_ROOT</span> /<span class="hljs-keyword">var</span>/www/git

<span class="hljs-title class_">AliasMatch</span> ^<span class="hljs-regexp">/git/</span>(.*<span class="hljs-regexp">/objects/</span>[<span class="hljs-number">0</span>-9a-f]{<span class="hljs-number">2</span>}/[<span class="hljs-number">0</span>-9a-f]{<span class="hljs-number">38</span>})$          /<span class="hljs-keyword">var</span>/www/git/$1
<span class="hljs-title class_">AliasMatch</span> ^<span class="hljs-regexp">/git/</span>(.*<span class="hljs-regexp">/objects/</span>pack/pack-[<span class="hljs-number">0</span>-9a-f]{<span class="hljs-number">40</span>}.(pack|idx))$ /<span class="hljs-keyword">var</span>/www/git/$1
<span class="hljs-title class_">ScriptAlias</span> /git/ <span class="hljs-regexp">/usr/</span>libexec/git-core/git-http-backend/</pre> </div> </div> <p><span data-i18n="1609ca4ea6b327fa3a906b953f0129279d1d90595677d0b2c22291e3b69b6b3a/b0" data-source="This can be combined with the gitweb configuration:" onmousemove="i18n(this)">&Ecy;&tcy;&ocy; &mcy;&ocy;&zhcy;&ncy;&ocy; &ocy;&bcy;&hardcy;&iecy;&dcy;&icy;&ncy;&icy;&tcy;&softcy; &scy; &kcy;&ocy;&ncy;&fcy;&icy;&gcy;&ucy;&rcy;&acy;&tscy;&icy;&iecy;&jcy; gitweb:</span></p> <div> <div> <pre class="hljs language-javascript"><span class="hljs-title class_">SetEnv</span> <span class="hljs-variable constant_">GIT_PROJECT_ROOT</span> /<span class="hljs-keyword">var</span>/www/git

<span class="hljs-title class_">AliasMatch</span> ^<span class="hljs-regexp">/git/</span>(.*<span class="hljs-regexp">/objects/</span>[<span class="hljs-number">0</span>-9a-f]{<span class="hljs-number">2</span>}/[<span class="hljs-number">0</span>-9a-f]{<span class="hljs-number">38</span>})$          /<span class="hljs-keyword">var</span>/www/git/$1
<span class="hljs-title class_">AliasMatch</span> ^<span class="hljs-regexp">/git/</span>(.*<span class="hljs-regexp">/objects/</span>pack/pack-[<span class="hljs-number">0</span>-9a-f]{<span class="hljs-number">40</span>}.(pack|idx))$ /<span class="hljs-keyword">var</span>/www/git/$1
<span class="hljs-title class_">ScriptAliasMatch</span> \
        <span class="hljs-string">&quot;(?x)^/git/(.*/(HEAD | \
                        info/refs | \
                        objects/info/[^/]+ | \
                        git-(upload|receive)-pack))$&quot;</span> \
        /usr/libexec/git-core/git-http-backend/$1
<span class="hljs-title class_">ScriptAlias</span> /git/ <span class="hljs-regexp">/var/</span>www/cgi-bin/gitweb.<span class="hljs-property">cgi</span>/</pre> </div> </div> </dd> <dt id="Documentation/git-http-backend.txt-Lighttpd"><span data-i18n="1c6adb288b15840a2367578fa0ddd5b2929354e11de23f9709d1746a0152a288/39" data-source="Lighttpd" onmousemove="i18n(this)">Lighttpd</span></dt> <dd> <p><span data-i18n="984f4256bd6023ac9e0427535d396b356bb20e3542629b11e0c20ea2d188a61a/d0" data-source="Ensure that &lt;code&gt;mod_cgi&lt;/code&gt;, &lt;code&gt;mod_alias&lt;/code&gt;, &lt;code&gt;mod_auth&lt;/code&gt;, &lt;code&gt;mod_setenv&lt;/code&gt; are loaded, then set &lt;code&gt;GIT_PROJECT_ROOT&lt;/code&gt; appropriately and redirect all requests to the CGI:" onmousemove="i18n(this)">&Ucy;&bcy;&iecy;&dcy;&icy;&tcy;&iecy;&scy;&softcy;, &chcy;&tcy;&ocy;  <code>mod_cgi</code> ,  <code>mod_alias</code> ,  <code>mod_auth</code> ,  <code>mod_setenv</code>  &zcy;&acy;&gcy;&rcy;&ucy;&zhcy;&iecy;&ncy;&ycy;, &zcy;&acy;&tcy;&iecy;&mcy; &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&icy;&tcy;&iecy;  <code>GIT_PROJECT_ROOT</code>  &scy;&ocy;&ocy;&tcy;&vcy;&iecy;&tcy;&scy;&tcy;&vcy;&ucy;&yucy;&shchcy;&icy;&mcy; &ocy;&bcy;&rcy;&acy;&zcy;&ocy;&mcy; &icy; &pcy;&iecy;&rcy;&iecy;&ncy;&acy;&pcy;&rcy;&acy;&vcy;&softcy;&tcy;&iecy; &vcy;&scy;&iecy; &zcy;&acy;&pcy;&rcy;&ocy;&scy;&ycy; &vcy; CGI:</span></p> <div> <div> <pre class="hljs language-csharp"><span class="hljs-keyword">alias</span>.url += ( <span class="hljs-string">&quot;/git&quot;</span> =&gt; <span class="hljs-string">&quot;/usr/lib/git-core/git-http-backend&quot;</span> )
$HTTP[<span class="hljs-string">&quot;url&quot;</span>] =~ <span class="hljs-string">&quot;^/git&quot;</span> {
        cgi.assign = (<span class="hljs-string">&quot;&quot;</span> =&gt; <span class="hljs-string">&quot;&quot;</span>)
        setenv.<span class="hljs-keyword">add</span>-environment = (
                <span class="hljs-string">&quot;GIT_PROJECT_ROOT&quot;</span> =&gt; <span class="hljs-string">&quot;/var/www/git&quot;</span>,
                <span class="hljs-string">&quot;GIT_HTTP_EXPORT_ALL&quot;</span> =&gt; <span class="hljs-string">&quot;&quot;</span>
        )
}</pre> </div> </div> <p><span data-i18n="44b2baad66cb5b74c76efce1ccb21a9b1f7801f3ff2ca58a3a121cb8661546b5/12" data-source="To enable anonymous read access but authenticated write access:" onmousemove="i18n(this)">&CHcy;&tcy;&ocy;&bcy;&ycy; &vcy;&kcy;&lcy;&yucy;&chcy;&icy;&tcy;&softcy; &acy;&ncy;&ocy;&ncy;&icy;&mcy;&ncy;&ycy;&jcy; &dcy;&ocy;&scy;&tcy;&ucy;&pcy; &dcy;&lcy;&yacy; &chcy;&tcy;&iecy;&ncy;&icy;&yacy;, &ncy;&ocy; &dcy;&ocy;&scy;&tcy;&ucy;&pcy; &dcy;&lcy;&yacy; &zcy;&acy;&pcy;&icy;&scy;&icy; &scy; &acy;&ucy;&tcy;&iecy;&ncy;&tcy;&icy;&fcy;&icy;&kcy;&acy;&tscy;&icy;&iecy;&jcy;:</span></p> <div> <div> <pre class="hljs language-php"><span class="hljs-variable">$HTTP</span>[<span class="hljs-string">&quot;querystring&quot;</span>] =~ <span class="hljs-string">&quot;service=git-receive-pack&quot;</span> {
        <span class="hljs-keyword">include</span> <span class="hljs-string">&quot;git-auth.conf&quot;</span>
}
<span class="hljs-variable">$HTTP</span>[<span class="hljs-string">&quot;url&quot;</span>] =~ <span class="hljs-string">&quot;^/git/.*/git-receive-pack$&quot;</span> {
        <span class="hljs-keyword">include</span> <span class="hljs-string">&quot;git-auth.conf&quot;</span>
}</pre> </div> </div> <p><span data-i18n="93328fdc4bb1ab896aeec493c2601529f75ad57e7f5b6102bea5109d48ea8100/cf" data-source="where &lt;code&gt;git-auth.conf&lt;/code&gt; looks something like:" onmousemove="i18n(this)">&gcy;&dcy;&iecy;  <code>git-auth.conf</code>  &vcy;&ycy;&gcy;&lcy;&yacy;&dcy;&icy;&tcy; &pcy;&rcy;&icy;&mcy;&iecy;&rcy;&ncy;&ocy; &tcy;&acy;&kcy;:</span></p> <div> <div> <pre class="hljs language-php">auth.<span class="hljs-keyword">require</span> = (
        <span class="hljs-string">&quot;/&quot;</span> =&gt; (
                <span class="hljs-string">&quot;method&quot;</span> =&gt; <span class="hljs-string">&quot;basic&quot;</span>,
                <span class="hljs-string">&quot;realm&quot;</span> =&gt; <span class="hljs-string">&quot;Git Access&quot;</span>,
                <span class="hljs-string">&quot;require&quot;</span> =&gt; <span class="hljs-string">&quot;valid-user&quot;</span>
               )
)
<span class="hljs-comment" title="# ...and set up auth.backend here"># ...&icy; &ncy;&acy;&scy;&tcy;&rcy;&ocy;&jcy;&tcy;&iecy; &zcy;&dcy;&iecy;&scy;&softcy; auth.backend</span></pre> </div> </div> <p><span data-i18n="d5f4309cd486aae308206c7641f875d3a677cf4a3b75acf5cf5bb486a7971f47/ce" data-source="To require authentication for both reads and writes:" onmousemove="i18n(this)">&CHcy;&tcy;&ocy;&bcy;&ycy; &pcy;&ocy;&tcy;&rcy;&iecy;&bcy;&ocy;&vcy;&acy;&tcy;&softcy; &acy;&ucy;&tcy;&iecy;&ncy;&tcy;&icy;&fcy;&icy;&kcy;&acy;&tscy;&icy;&yucy; &kcy;&acy;&kcy; &dcy;&lcy;&yacy; &chcy;&tcy;&iecy;&ncy;&icy;&yacy;, &tcy;&acy;&kcy; &icy; &dcy;&lcy;&yacy; &zcy;&acy;&pcy;&icy;&scy;&icy;:</span></p> <div> <div> <pre class="hljs language-php"><span class="hljs-variable">$HTTP</span>[<span class="hljs-string">&quot;url&quot;</span>] =~ <span class="hljs-string">&quot;^/git/private&quot;</span> {
        <span class="hljs-keyword">include</span> <span class="hljs-string">&quot;git-auth.conf&quot;</span>
}</pre> </div> </div> </dd> </dl> </div> </div> <h2 class="text-body-emphasis"  id="_environment"><span data-i18n="9e471951a1b4106e54be128a21112b02914fe98cc79b2c92b49ee80c5464487c/9d" data-source="Environment" onmousemove="i18n(this)">Environment</span></h2> <div> <p><span data-i18n="796eb935480da25372006562998a828892fd431a40e9c0edebd25a1b7f315f13/1a" data-source="&lt;code&gt;git http-backend&lt;/code&gt; relies upon the &lt;code&gt;CGI&lt;/code&gt; environment variables set by the invoking web server, including:" onmousemove="i18n(this)"><code>git http-backend</code>  &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ucy;&iecy;&tcy; &pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ycy;&iecy; &scy;&rcy;&iecy;&dcy;&ycy;  <code>CGI</code> , &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&lcy;&iecy;&ncy;&ncy;&ycy;&iecy; &vcy;&ycy;&zcy;&ycy;&vcy;&acy;&yucy;&shchcy;&icy;&mcy; &vcy;&iecy;&bcy;-&scy;&iecy;&rcy;&vcy;&iecy;&rcy;&ocy;&mcy;, &vcy; &tcy;&ocy;&mcy; &chcy;&icy;&scy;&lcy;&iecy;:</span></p> <div> <ul> <li> <p><span data-i18n="f2edfaac8d385ba421231b71c49dd704c2bfe99049dcc84bb0b2188ea5e84bb8/32" data-source="PATH_INFO (if GIT_PROJECT_ROOT is set, otherwise PATH_TRANSLATED)" onmousemove="i18n(this)">PATH_INFO (&iecy;&scy;&lcy;&icy; &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&lcy;&iecy;&ncy; GIT_PROJECT_ROOT, &vcy; &pcy;&rcy;&ocy;&tcy;&icy;&vcy;&ncy;&ocy;&mcy; &scy;&lcy;&ucy;&chcy;&acy;&iecy; PATH_TRANSLATED)</span></p> </li> <li> <p><span data-i18n="e5ce8fe3ded50ac711d4d3e3cfdacea5db955d5464b31ff99a2d1c335ca9c325/d0" data-source="REMOTE_USER" onmousemove="i18n(this)">REMOTE_USER</span></p> </li> <li> <p><span data-i18n="c5a999abd04eb59351bda68c2b4b975185533706c93e747c379b00f2329177e7/11" data-source="REMOTE_ADDR" onmousemove="i18n(this)">REMOTE_ADDR</span></p> </li> <li> <p><span data-i18n="4d3593a938b5d100f2e32329647549bed2ea75d8dc67ed124b930e3e4c69d809/70" data-source="CONTENT_TYPE" onmousemove="i18n(this)">CONTENT_TYPE</span></p> </li> <li> <p><span data-i18n="04485f7c15badff75b20739bbcd37d6f31d74abc8e439317f68c46ca4eaa973e/2c" data-source="QUERY_STRING" onmousemove="i18n(this)">QUERY_STRING</span></p> </li> <li> <p><span data-i18n="2cccb8f571f3b71a37e22a34fef573b12e26ffd8d987c426c5e186ddf1f1ee45/67" data-source="REQUEST_METHOD" onmousemove="i18n(this)">REQUEST_METHOD</span></p> </li> </ul> </div> <p><span data-i18n="1e0a8370caa9b2e33a0d6af1076fa087aaf26f01f2defa705c6f3becefea3124/f0" data-source="The &lt;code&gt;GIT_HTTP_EXPORT_ALL&lt;/code&gt; environment variable may be passed to &lt;code&gt;git-http-backend&lt;/code&gt; to bypass the check for the &amp;quot;git-daemon-export-ok&amp;quot; file in each repository before allowing export of that repository." onmousemove="i18n(this)">&Pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ucy;&yucy; &scy;&rcy;&iecy;&dcy;&ycy;  <code>GIT_HTTP_EXPORT_ALL</code>  &mcy;&ocy;&zhcy;&ncy;&ocy; &pcy;&iecy;&rcy;&iecy;&dcy;&acy;&tcy;&softcy; &vcy;  <code>git-http-backend</code> , &chcy;&tcy;&ocy;&bcy;&ycy; &ocy;&bcy;&ocy;&jcy;&tcy;&icy; &pcy;&rcy;&ocy;&vcy;&iecy;&rcy;&kcy;&ucy; &fcy;&acy;&jcy;&lcy;&acy;  &quot;git-daemon-export-ok&quot;  &vcy; &kcy;&acy;&zhcy;&dcy;&ocy;&mcy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&icy; &pcy;&iecy;&rcy;&iecy;&dcy; &rcy;&acy;&zcy;&rcy;&iecy;&shcy;&iecy;&ncy;&icy;&iecy;&mcy; &ecy;&kcy;&scy;&pcy;&ocy;&rcy;&tcy;&acy; &ecy;&tcy;&ocy;&gcy;&ocy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&yacy;.</span></p> <p><span data-i18n="2026f9c415ea3e7a18580ab61c504bd3d7349b47ed40919420213d9057c298a8/e4" data-source="The &lt;code&gt;GIT_HTTP_MAX_REQUEST_BUFFER&lt;/code&gt; environment variable (or the &lt;code&gt;http.maxRequestBuffer&lt;/code&gt; config option) may be set to change the largest ref negotiation request that git will handle during a fetch; any fetch requiring a larger buffer will not succeed. This value should not normally need to be changed, but may be helpful if you are fetching from a repository with an extremely large number of refs. The value can be specified with a unit (e.g., &lt;code&gt;100M&lt;/code&gt; for 100 megabytes). The default is 10 megabytes." onmousemove="i18n(this)">&Pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&acy;&yacy; &scy;&rcy;&iecy;&dcy;&ycy;  <code>GIT_HTTP_MAX_REQUEST_BUFFER</code>  (&icy;&lcy;&icy; &ocy;&pcy;&tscy;&icy;&yacy; &kcy;&ocy;&ncy;&fcy;&icy;&gcy;&ucy;&rcy;&acy;&tscy;&icy;&icy;  <code>http.maxRequestBuffer</code> ) &mcy;&ocy;&zhcy;&iecy;&tcy; &bcy;&ycy;&tcy;&softcy; &ucy;&scy;&tcy;&acy;&ncy;&ocy;&vcy;&lcy;&iecy;&ncy;&acy; &ZeroWidthSpace;&ZeroWidthSpace;&dcy;&lcy;&yacy; &icy;&zcy;&mcy;&iecy;&ncy;&iecy;&ncy;&icy;&yacy; &scy;&acy;&mcy;&ocy;&gcy;&ocy; &bcy;&ocy;&lcy;&softcy;&shcy;&ocy;&gcy;&ocy; &zcy;&acy;&pcy;&rcy;&ocy;&scy;&acy; &ncy;&acy; &scy;&ocy;&gcy;&lcy;&acy;&scy;&ocy;&vcy;&acy;&ncy;&icy;&iecy; &scy;&scy;&ycy;&lcy;&kcy;&icy;, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&jcy;  git  &bcy;&ucy;&dcy;&iecy;&tcy; &ocy;&bcy;&rcy;&acy;&bcy;&acy;&tcy;&ycy;&vcy;&acy;&tcy;&softcy; &vcy;&ocy; &vcy;&rcy;&iecy;&mcy;&yacy; &vcy;&ycy;&bcy;&ocy;&rcy;&kcy;&icy;; &lcy;&yucy;&bcy;&acy;&yacy; &vcy;&ycy;&bcy;&ocy;&rcy;&kcy;&acy;, &tcy;&rcy;&iecy;&bcy;&ucy;&yucy;&shchcy;&acy;&yacy; &bcy;&ocy;&lcy;&softcy;&shcy;&iecy;&gcy;&ocy; &bcy;&ucy;&fcy;&iecy;&rcy;&acy;, &ncy;&iecy; &bcy;&ucy;&dcy;&iecy;&tcy; &ucy;&scy;&pcy;&iecy;&shcy;&ncy;&ocy;&jcy;. &Ocy;&bcy;&ycy;&chcy;&ncy;&ocy; &ecy;&tcy;&ocy; &zcy;&ncy;&acy;&chcy;&iecy;&ncy;&icy;&iecy; &ncy;&iecy; &tcy;&rcy;&iecy;&bcy;&ucy;&iecy;&tcy;&scy;&yacy; &icy;&zcy;&mcy;&iecy;&ncy;&yacy;&tcy;&softcy;, &ncy;&ocy; &ocy;&ncy;&ocy; &mcy;&ocy;&zhcy;&iecy;&tcy; &ocy;&kcy;&acy;&zcy;&acy;&tcy;&softcy;&scy;&yacy; &pcy;&ocy;&lcy;&iecy;&zcy;&ncy;&ycy;&mcy;, &iecy;&scy;&lcy;&icy; &vcy;&ycy; &icy;&zcy;&vcy;&lcy;&iecy;&kcy;&acy;&iecy;&tcy;&iecy; &dcy;&acy;&ncy;&ncy;&ycy;&iecy; &icy;&zcy; &rcy;&iecy;&pcy;&ocy;&zcy;&icy;&tcy;&ocy;&rcy;&icy;&yacy; &scy; &chcy;&rcy;&iecy;&zcy;&vcy;&ycy;&chcy;&acy;&jcy;&ncy;&ocy; &bcy;&ocy;&lcy;&softcy;&shcy;&icy;&mcy; &kcy;&ocy;&lcy;&icy;&chcy;&iecy;&scy;&tcy;&vcy;&ocy;&mcy; &scy;&scy;&ycy;&lcy;&ocy;&kcy;. &Zcy;&ncy;&acy;&chcy;&iecy;&ncy;&icy;&iecy; &mcy;&ocy;&zhcy;&ncy;&ocy; &ucy;&kcy;&acy;&zcy;&acy;&tcy;&softcy; &vcy; &iecy;&dcy;&icy;&ncy;&icy;&tscy;&acy;&khcy; &icy;&zcy;&mcy;&iecy;&rcy;&iecy;&ncy;&icy;&yacy; (&ncy;&acy;&pcy;&rcy;&icy;&mcy;&iecy;&rcy;,  <code>100M</code>  &dcy;&lcy;&yacy; 100 &mcy;&iecy;&gcy;&acy;&bcy;&acy;&jcy;&tcy;). &Pcy;&ocy; &ucy;&mcy;&ocy;&lcy;&chcy;&acy;&ncy;&icy;&yucy; &mdash; 10 &mcy;&iecy;&gcy;&acy;&bcy;&acy;&jcy;&tcy;.</span></p> <p><span data-i18n="08b6f3eb1308439e8b5485e9200c91210772f5ff40a7a3f4edf4b056d63472a1/23" data-source="Clients may probe for optional protocol capabilities (like the v2 protocol) using the &lt;code&gt;Git-Protocol&lt;/code&gt; HTTP header. In order to support these, the contents of that header must appear in the &lt;code&gt;GIT_PROTOCOL&lt;/code&gt; environment variable. Most webservers will pass this header to the CGI via the &lt;code&gt;HTTP_GIT_PROTOCOL&lt;/code&gt; variable, and &lt;code&gt;git-http-backend&lt;/code&gt; will automatically copy that to &lt;code&gt;GIT_PROTOCOL&lt;/code&gt;. However, some webservers may be more selective about which headers they&amp;rsquo;ll pass, in which case they need to be configured explicitly (see the mention of &lt;code&gt;Git-Protocol&lt;/code&gt; in the Apache config from the earlier EXAMPLES section)." onmousemove="i18n(this)">&Kcy;&lcy;&icy;&iecy;&ncy;&tcy;&ycy; &mcy;&ocy;&gcy;&ucy;&tcy; &pcy;&rcy;&ocy;&vcy;&iecy;&rcy;&yacy;&tcy;&softcy; &vcy;&ocy;&zcy;&mcy;&ocy;&zhcy;&ncy;&ocy;&scy;&tcy;&icy; &dcy;&ocy;&pcy;&ocy;&lcy;&ncy;&icy;&tcy;&iecy;&lcy;&softcy;&ncy;&ycy;&khcy; &pcy;&rcy;&ocy;&tcy;&ocy;&kcy;&ocy;&lcy;&ocy;&vcy; (&ncy;&acy;&pcy;&rcy;&icy;&mcy;&iecy;&rcy;, &pcy;&rcy;&ocy;&tcy;&ocy;&kcy;&ocy;&lcy;&acy; v2), &icy;&scy;&pcy;&ocy;&lcy;&softcy;&zcy;&ucy;&yacy; HTTP-&zcy;&acy;&gcy;&ocy;&lcy;&ocy;&vcy;&ocy;&kcy;  <code>Git-Protocol</code> . &Dcy;&lcy;&yacy; &icy;&khcy; &pcy;&ocy;&dcy;&dcy;&iecy;&rcy;&zhcy;&kcy;&icy; &scy;&ocy;&dcy;&iecy;&rcy;&zhcy;&icy;&mcy;&ocy;&iecy; &ecy;&tcy;&ocy;&gcy;&ocy; &zcy;&acy;&gcy;&ocy;&lcy;&ocy;&vcy;&kcy;&acy; &dcy;&ocy;&lcy;&zhcy;&ncy;&ocy; &pcy;&ocy;&yacy;&vcy;&icy;&tcy;&softcy;&scy;&yacy; &vcy; &pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ocy;&jcy; &scy;&rcy;&iecy;&dcy;&ycy;  <code>GIT_PROTOCOL</code> . &Bcy;&ocy;&lcy;&softcy;&shcy;&icy;&ncy;&scy;&tcy;&vcy;&ocy; &vcy;&iecy;&bcy;-&scy;&iecy;&rcy;&vcy;&iecy;&rcy;&ocy;&vcy; &pcy;&iecy;&rcy;&iecy;&dcy;&acy;&dcy;&ucy;&tcy; &ecy;&tcy;&ocy;&tcy; &zcy;&acy;&gcy;&ocy;&lcy;&ocy;&vcy;&ocy;&kcy; &vcy; CGI &chcy;&iecy;&rcy;&iecy;&zcy; &pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ucy;&yucy;  <code>HTTP_GIT_PROTOCOL</code> , &acy;  <code>git-http-backend</code>  &acy;&vcy;&tcy;&ocy;&mcy;&acy;&tcy;&icy;&chcy;&iecy;&scy;&kcy;&icy; &scy;&kcy;&ocy;&pcy;&icy;&rcy;&ucy;&iecy;&tcy; &iecy;&gcy;&ocy; &vcy;  <code>GIT_PROTOCOL</code> . &Ocy;&dcy;&ncy;&acy;&kcy;&ocy; &ncy;&iecy;&kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&iecy; &vcy;&iecy;&bcy;-&scy;&iecy;&rcy;&vcy;&iecy;&rcy;&ycy; &mcy;&ocy;&gcy;&ucy;&tcy; &bcy;&ocy;&lcy;&iecy;&iecy; &icy;&zcy;&bcy;&icy;&rcy;&acy;&tcy;&iecy;&lcy;&softcy;&ncy;&ocy; &vcy;&ycy;&bcy;&icy;&rcy;&acy;&tcy;&softcy; &zcy;&acy;&gcy;&ocy;&lcy;&ocy;&vcy;&kcy;&icy;, &kcy;&ocy;&tcy;&ocy;&rcy;&ycy;&iecy; &ocy;&ncy;&icy; &bcy;&ucy;&dcy;&ucy;&tcy; &pcy;&iecy;&rcy;&iecy;&dcy;&acy;&vcy;&acy;&tcy;&softcy;, &icy; &vcy; &ecy;&tcy;&ocy;&mcy; &scy;&lcy;&ucy;&chcy;&acy;&iecy; &icy;&khcy; &ncy;&iecy;&ocy;&bcy;&khcy;&ocy;&dcy;&icy;&mcy;&ocy; &ncy;&acy;&scy;&tcy;&rcy;&ocy;&icy;&tcy;&softcy; &yacy;&vcy;&ncy;&ocy; (&scy;&mcy;. &ucy;&pcy;&ocy;&mcy;&icy;&ncy;&acy;&ncy;&icy;&iecy;  <code>Git-Protocol</code>  &vcy; &kcy;&ocy;&ncy;&fcy;&icy;&gcy;&ucy;&rcy;&acy;&tscy;&icy;&icy; Apache &icy;&zcy; &pcy;&rcy;&iecy;&dcy;&ycy;&dcy;&ucy;&shchcy;&iecy;&gcy;&ocy; &rcy;&acy;&zcy;&dcy;&iecy;&lcy;&acy; &Pcy;&Rcy;&Icy;&Mcy;&IEcy;&Rcy;&Ycy;).</span></p> <p><span data-i18n="46e6f3e6d1af34c7a8337453ac2ed80dda2ca897c518744d2c3d15f066cdeb05/03" data-source="The backend process sets GIT_COMMITTER_NAME to &lt;code&gt;$REMOTE_USER&lt;/code&gt; and GIT_COMMITTER_EMAIL to &lt;code&gt;${REMOTE_USER}@http.${REMOTE_ADDR}&lt;/code&gt;, ensuring that any reflogs created by &lt;code&gt;git-receive-pack&lt;/code&gt; contain some identifying information of the remote user who performed the push." onmousemove="i18n(this)">&Vcy;&ncy;&ucy;&tcy;&rcy;&iecy;&ncy;&ncy;&icy;&jcy; &pcy;&rcy;&ocy;&tscy;&iecy;&scy;&scy; &ucy;&scy;&tcy;&acy;&ncy;&acy;&vcy;&lcy;&icy;&vcy;&acy;&iecy;&tcy; GIT_COMMITTER_NAME &vcy;  <code>$REMOTE_USER</code>  &icy; GIT_COMMITTER_EMAIL &vcy;  <code>${REMOTE_USER}@http.${REMOTE_ADDR}</code> , &gcy;&acy;&rcy;&acy;&ncy;&tcy;&icy;&rcy;&ucy;&yacy;, &chcy;&tcy;&ocy; &lcy;&yucy;&bcy;&ycy;&iecy; &zhcy;&ucy;&rcy;&ncy;&acy;&lcy;&ycy; &ocy;&bcy;&ncy;&ocy;&vcy;&lcy;&iecy;&ncy;&icy;&jcy;, &scy;&ocy;&zcy;&dcy;&acy;&ncy;&ncy;&ycy;&iecy;  <code>git-receive-pack</code> , &scy;&ocy;&dcy;&iecy;&rcy;&zhcy;&acy;&tcy; &ncy;&iecy;&kcy;&ocy;&tcy;&ocy;&rcy;&ucy;&yucy; &icy;&dcy;&iecy;&ncy;&tcy;&icy;&fcy;&icy;&tscy;&icy;&rcy;&ucy;&yucy;&shchcy;&ucy;&yucy; &icy;&ncy;&fcy;&ocy;&rcy;&mcy;&acy;&tscy;&icy;&yucy; &ucy;&dcy;&acy;&lcy;&iecy;&ncy;&ncy;&ocy;&gcy;&ocy; &pcy;&ocy;&lcy;&softcy;&zcy;&ocy;&vcy;&acy;&tcy;&iecy;&lcy;&yacy;, &vcy;&ycy;&pcy;&ocy;&lcy;&ncy;&icy;&vcy;&shcy;&iecy;&gcy;&ocy; &ocy;&tcy;&pcy;&rcy;&acy;&vcy;&kcy;&ucy;.</span></p> <p><span data-i18n="8b3eeaaa1b5c0d48edaf509a0c4ec9c2705055b362b7ebd6d0de860bdf0296eb/05" data-source="All &lt;code&gt;CGI&lt;/code&gt; environment variables are available to each of the hooks invoked by the &lt;code&gt;git-receive-pack&lt;/code&gt;." onmousemove="i18n(this)">&Vcy;&scy;&iecy; &pcy;&iecy;&rcy;&iecy;&mcy;&iecy;&ncy;&ncy;&ycy;&iecy; &scy;&rcy;&iecy;&dcy;&ycy;  <code>CGI</code>  &dcy;&ocy;&scy;&tcy;&ucy;&pcy;&ncy;&ycy; &dcy;&lcy;&yacy; &kcy;&acy;&zhcy;&dcy;&ocy;&gcy;&ocy; &icy;&zcy; &pcy;&iecy;&rcy;&iecy;&khcy;&vcy;&acy;&tcy;&chcy;&icy;&kcy;&ocy;&vcy;, &vcy;&ycy;&zcy;&ycy;&vcy;&acy;&iecy;&mcy;&ycy;&khcy;  <code>git-receive-pack</code> .</span></p> </div><address>
<p>
    &copy; 2012&ndash;2024 Scott Chacon and others<br/>Licensed under the MIT License.<br/>
<a href="https://git-scm.com/docs/git-http-backend">https://git-scm.com/docs/git-http-backend</a>
</p>
</address>                </article>
            </main>

            <br>
            <br>
            <hr>

                            <ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-6424571640879890"
     data-ad-slot="3954319254"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>            
        </div>

        <!-- -->

        <div class="col-md-3">
            <br>
            <form action="-index-.html">
                <div class="input-group">
                    <input class="form-control" type="search" name="q" placeholder="Search for Git" required>
                    <button class="btn btn-primary" type="submit">
                        <i class="bi bi-search"></i>
                    </button>
                </div>
            </form>
            <br>

                            <div class="list-group list-group-flush">
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="git-http-fetch.html">
                            git http-fetch                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="git-http-push.html">
                            git http-push                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="git-imap-send.html">
                            git imap-send                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="git-index-pack.html">
                            git index-pack                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="git-init.html">
                            git init                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="git-instaweb.html">
                            git instaweb                        </a>
                                            <a class="list-group-item list-group-item-action text-primary-emphasis px-2 text-truncate" href="git-interpret-trailers.html">
                            git interpret-trailers                        </a>
                                    </div>
            
            <br>
            <div class="my-3">
                   <ins class="adsbygoogle"
        style="display:block; text-align:center;"
        data-ad-layout="in-article"
        data-ad-format="fluid"
        data-ad-client="ca-pub-6424571640879890"
        data-ad-slot="3777011170"></ins>
<script>
    (adsbygoogle = window.adsbygoogle || []).push({});
</script>            </div>
            <br>

            
            
        </div>
    </div>
</div>    <!--/sse-->

    <footer>
        <br>
        <div class="container">
            <div class="row">
                <div class="col">
                    <hr>
                    <div class="row">
                        <div class="col-md-10">
                            <ul class="nav">
                                <li class="nav-item">
                                    <a class="nav-link ps-0" href="https://runebook.dev/">Help us Improve Translation</a>
                                </li>
                                                            </ul>
                        </div>
                        <div class="col-md-2 text-end">
                            <a href="git-http-backend.html#" class="fs-5" aria-label="Top">
                                <i class="bi bi-arrow-up-square-fill"></i>
                            </a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <br>
    </footer>
    <script src="../../../runebook.js"></script>
</body>

</html>